/*
 * MultipleBPred.h
 *
 *  Created on: 30-Nov-2012
 *      Author: Niranjana
 */

#ifndef MULTIPLEBPRED_H_
#define MULTIPLEBPRED_H_

typedef struct{
	unsigned int pc;
	bool taken;
}BPQEntry;

class MultipleBPred {
private:
	unsigned int m;
	unsigned int bpqNumEntries, head, tail;
	BPQEntry *bpq;
public:

	MultipleBPred(unsigned int maxEntries);
	int push(BPQEntry *pred);
	int popPC();
	int read(BPQEntry *pred, int numReads);
	unsigned int currentNumEntries();
	virtual ~MultipleBPred();
};

#endif /* MULTIPLEBPRED_H_ */
